(record_delete): Always use XFASTINT on sbeg.
authorRichard M. Stallman <rms@gnu.org>
Sat, 12 Jun 1993 17:04:51 +0000 (17:04 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 12 Jun 1993 17:04:51 +0000 (17:04 +0000)
(Fprimitive_undo): Add missing `else'.  Add USE_TEXT_PROPERTIES
conditional for calling Fput_text_property.  Use XINT on high, low.

src/undo.c

index 04003cb6cc5fce4275b6d0faca703c64c38e2b2a..18bfc3a3b2bc0fae777bad6ef5456797005901af 100644 (file)
@@ -94,7 +94,7 @@ record_delete (beg, length)
   XFASTINT (lend) = beg + length;
 
   /* If point isn't at start of deleted range, record where it is.  */
-  if (PT != sbeg)
+  if (PT != XFASTINT (sbeg))
     current_buffer->undo_list
       = Fcons (make_number (PT), current_buffer->undo_list);
 
@@ -325,7 +325,7 @@ Return what remains of the list.")
 
                  high = Fcar (cdr);
                  low = Fcdr (cdr);
-                 mod_time = (high << 16) + low;
+                 mod_time = (XFASTINT (high) << 16) + XFASTINT (low);
                  /* If this records an obsolete save
                     (not matching the actual disk file)
                     then don't mark unmodified.  */
@@ -336,9 +336,10 @@ Return what remains of the list.")
 #endif /* CLASH_DETECTION */
                  Fset_buffer_modified_p (Qnil);
                }
-             if (EQ (car, Qnil))
+#ifdef USE_TEXT_PROPERTIES
+             else if (EQ (car, Qnil))
                {
-                 /* Element (t prop val beg . end) records property change.  */
+                 /* Element (nil prop val beg . end) is property change.  */
                  Lisp_Object beg, end, prop, val;
 
                  prop = Fcar (cdr);
@@ -350,6 +351,7 @@ Return what remains of the list.")
 
                  Fput_text_property (beg, end, prop, val, Qnil);
                }
+#endif /* USE_TEXT_PROPERTIES */
              else if (XTYPE (car) == Lisp_Int && XTYPE (cdr) == Lisp_Int)
                {
                  /* Element (BEG . END) means range was inserted.  */